<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Pin: BBL: Single entrance, single exit sequence of instructions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Pin
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">BBL: Single entrance, single exit sequence of instructions<div class="ingroups"><a class="el" href="group__API__REF.html">Instrumentation API Reference</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac7ea1e91e10bce868bbce497cacabab3"><td class="memItemLeft" align="right" valign="top">UINT32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gac7ea1e91e10bce868bbce497cacabab3">BBL_NumIns</a> (BBL bbl)</td></tr>
<tr class="separator:gac7ea1e91e10bce868bbce497cacabab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade725392ec92f3042e8c5b980ca61a8a"><td class="memItemLeft" align="right" valign="top">INS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gade725392ec92f3042e8c5b980ca61a8a">BBL_InsHead</a> (BBL x)</td></tr>
<tr class="separator:gade725392ec92f3042e8c5b980ca61a8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2740970dd7511488ba2aea081b9298ca"><td class="memItemLeft" align="right" valign="top">INS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#ga2740970dd7511488ba2aea081b9298ca">BBL_InsTail</a> (BBL x)</td></tr>
<tr class="separator:ga2740970dd7511488ba2aea081b9298ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79b074eb89b45ec1cf8e0aa9532b9581"><td class="memItemLeft" align="right" valign="top">BBL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#ga79b074eb89b45ec1cf8e0aa9532b9581">BBL_Next</a> (BBL x)</td></tr>
<tr class="separator:ga79b074eb89b45ec1cf8e0aa9532b9581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24f17f1c38cee6deb1ac18c8465d6fc0"><td class="memItemLeft" align="right" valign="top">BBL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#ga24f17f1c38cee6deb1ac18c8465d6fc0">BBL_Prev</a> (BBL x)</td></tr>
<tr class="separator:ga24f17f1c38cee6deb1ac18c8465d6fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb48343e32bd7a793b487224ac857b19"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gacb48343e32bd7a793b487224ac857b19">BBL_Valid</a> (BBL x)</td></tr>
<tr class="separator:gacb48343e32bd7a793b487224ac857b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0a08cca57fae0af6ca98f1002a067bf"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gad0a08cca57fae0af6ca98f1002a067bf">BBL_Original</a> (BBL bbl)</td></tr>
<tr class="separator:gad0a08cca57fae0af6ca98f1002a067bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7aa68a764898661e115091ba524c6ba"><td class="memItemLeft" align="right" valign="top">ADDRINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gaa7aa68a764898661e115091ba524c6ba">BBL_Address</a> (BBL bbl)</td></tr>
<tr class="separator:gaa7aa68a764898661e115091ba524c6ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc9ce3354eb08c36f2ff849e170e182c"><td class="memItemLeft" align="right" valign="top">USIZE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gafc9ce3354eb08c36f2ff849e170e182c">BBL_Size</a> (BBL bbl)</td></tr>
<tr class="separator:gafc9ce3354eb08c36f2ff849e170e182c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9b7dabce7f0343da16e3be0bde9fd393"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#ga9b7dabce7f0343da16e3be0bde9fd393">BBL_InsertCall</a> (BBL bbl, <a class="el" href="group__INST__ARGS.html#ga707ea08e31f44f4a81e2a7766123bad7">IPOINT</a> action, AFUNPTR funptr,...)</td></tr>
<tr class="separator:ga9b7dabce7f0343da16e3be0bde9fd393"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee158afc4efc9224e85435aa55214272"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gaee158afc4efc9224e85435aa55214272">BBL_InsertIfCall</a> (BBL bbl, <a class="el" href="group__INST__ARGS.html#ga707ea08e31f44f4a81e2a7766123bad7">IPOINT</a> action, AFUNPTR funptr,...)</td></tr>
<tr class="separator:gaee158afc4efc9224e85435aa55214272"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa868ef612bc1020554d64b1558cc7cc6"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#gaa868ef612bc1020554d64b1558cc7cc6">BBL_InsertThenCall</a> (BBL bbl, <a class="el" href="group__INST__ARGS.html#ga707ea08e31f44f4a81e2a7766123bad7">IPOINT</a> action, AFUNPTR funptr,...)</td></tr>
<tr class="separator:gaa868ef612bc1020554d64b1558cc7cc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49b398eb9c10ff80019315d6c2eee84a"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__BBL.html#ga49b398eb9c10ff80019315d6c2eee84a">BBL_HasFallThrough</a> (BBL bbl)</td></tr>
<tr class="separator:ga49b398eb9c10ff80019315d6c2eee84a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Sequence of instructions that is always entered at the top and exited at the bottom by a fall through and/or taken branch. If Pin detects a jump to an instruction in the middle of a bbl, it will create a new bbl beginning at the target. See <a class="el" href="index.html#GRAN">Instrumentation Granularity</a>. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaa7aa68a764898661e115091ba524c6ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa7aa68a764898661e115091ba524c6ba">&#9670;&nbsp;</a></span>BBL_Address()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ADDRINT BBL_Address </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Address of a bbl</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="ga49b398eb9c10ff80019315d6c2eee84a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49b398eb9c10ff80019315d6c2eee84a">&#9670;&nbsp;</a></span>BBL_HasFallThrough()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL BBL_HasFallThrough </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Refer to <a class="el" href="group__INS__INSPECTION.html#ga7602edb17e52e209492bab2c65fc1612">INS_HasFallThrough</a> for checking if an instruction could have a fall-through path based on the opcode. </p><dl class="section return"><dt>Returns</dt><dd>TRUE if the BBL has a fall-through bbl within the trace, else returns FALSE.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="ga9b7dabce7f0343da16e3be0bde9fd393"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9b7dabce7f0343da16e3be0bde9fd393">&#9670;&nbsp;</a></span>BBL_InsertCall()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID BBL_InsertCall </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__INST__ARGS.html#ga707ea08e31f44f4a81e2a7766123bad7">IPOINT</a>&#160;</td>
          <td class="paramname"><em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AFUNPTR&#160;</td>
          <td class="paramname"><em>funptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Insert call relative to a bbl. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bbl</td><td><a class="el" href="group__BBL.html">BBL: Single entrance, single exit sequence of instructions</a> to instrument </td></tr>
    <tr><td class="paramname">action</td><td>Specifies before, after, etc. <br  />
 <a class="el" href="group__INST__ARGS.html#gga707ea08e31f44f4a81e2a7766123bad7a7c7cbebb7a62a40e9f803b1db2e6ce20">IPOINT_BEFORE</a> is always valid for all BBLs. <br  />
 <a class="el" href="group__INST__ARGS.html#gga707ea08e31f44f4a81e2a7766123bad7a42eff26179c6d87348abe492301c12ec">IPOINT_AFTER</a> is valid only when a fall-through exists. Can only be used if <a class="el" href="group__BBL.html#ga49b398eb9c10ff80019315d6c2eee84a">BBL_HasFallThrough</a> is true. <br  />
 <a class="el" href="group__INST__ARGS.html#gga707ea08e31f44f4a81e2a7766123bad7acf7dee2063098dd79907d19f9c7df65d">IPOINT_ANYWHERE</a> will put the instrumentation at a place inside the bbl for best performance. <br  />
 <a class="el" href="group__INST__ARGS.html#gga707ea08e31f44f4a81e2a7766123bad7a5ef5b45901a8447e5173f50746ab029d">IPOINT_TAKEN_BRANCH</a> is valid only when the BBL ends with a control-flow instruction. Can only be used if INS_IsValidForIpointTakenBranch(BBL_ins_tail(bbl)) is true. </td></tr>
    <tr><td class="paramname">funptr</td><td>Analysis function to call </td></tr>
    <tr><td class="paramname">...</td><td><a class="el" href="group__INST__ARGS.html#ga089c27ca15e9ff139dd3a3f8a6f8451d">IARG_TYPE</a>. Arguments to pass to funptr</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gaee158afc4efc9224e85435aa55214272"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaee158afc4efc9224e85435aa55214272">&#9670;&nbsp;</a></span>BBL_InsertIfCall()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID BBL_InsertIfCall </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__INST__ARGS.html#ga707ea08e31f44f4a81e2a7766123bad7">IPOINT</a>&#160;</td>
          <td class="paramname"><em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AFUNPTR&#160;</td>
          <td class="paramname"><em>funptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Insert a call to funptr relative to a BBL. If funptr returns a non-zero ADDRINT, then the immediately following "then" analysis call is executed. Note that if <a class="el" href="group__INST__ARGS.html#ga3d1d5f6805cb16d00bce441290ca2212">CALL_ORDER</a> is used, Both "if" and "then" analysis calls must have the same order.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bbl</td><td>BBL to instrument </td></tr>
    <tr><td class="paramname">action</td><td>Specifies when the analysis call executes. See the documentation in <a class="el" href="group__BBL.html#ga9b7dabce7f0343da16e3be0bde9fd393">BBL_InsertCall()</a>. </td></tr>
    <tr><td class="paramname">funptr</td><td>Analysis function to call. Its return type must be ADDRINT </td></tr>
    <tr><td class="paramname">...</td><td><a class="el" href="group__INST__ARGS.html#ga089c27ca15e9ff139dd3a3f8a6f8451d">IARG_TYPE</a>. Arguments to pass to funptr</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gaa868ef612bc1020554d64b1558cc7cc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa868ef612bc1020554d64b1558cc7cc6">&#9670;&nbsp;</a></span>BBL_InsertThenCall()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID BBL_InsertThenCall </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__INST__ARGS.html#ga707ea08e31f44f4a81e2a7766123bad7">IPOINT</a>&#160;</td>
          <td class="paramname"><em>action</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AFUNPTR&#160;</td>
          <td class="paramname"><em>funptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Insert a call to funptr relative to a BBL. The function is called only if the immediately preceding "if" analysis call returns a non-zero value. Note that if <a class="el" href="group__INST__ARGS.html#ga3d1d5f6805cb16d00bce441290ca2212">CALL_ORDER</a> is used, Both "if" and "then" analysis calls must have the same order.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bbl</td><td>BBL to instrument </td></tr>
    <tr><td class="paramname">action</td><td>Specifies when the analysis call executes. See the documentation in <a class="el" href="group__BBL.html#ga9b7dabce7f0343da16e3be0bde9fd393">BBL_InsertCall()</a>. </td></tr>
    <tr><td class="paramname">funptr</td><td>Analysis function to call </td></tr>
    <tr><td class="paramname">...</td><td><a class="el" href="group__INST__ARGS.html#ga089c27ca15e9ff139dd3a3f8a6f8451d">IARG_TYPE</a>. Arguments to pass to funptr</td></tr>
  </table>
  </dd>
</dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gade725392ec92f3042e8c5b980ca61a8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade725392ec92f3042e8c5b980ca61a8a">&#9670;&nbsp;</a></span>BBL_InsHead()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">INS BBL_InsHead </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>First instruction of bbl</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="ga2740970dd7511488ba2aea081b9298ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2740970dd7511488ba2aea081b9298ca">&#9670;&nbsp;</a></span>BBL_InsTail()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">INS BBL_InsTail </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Last instruction of bbl</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="ga79b074eb89b45ec1cf8e0aa9532b9581"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga79b074eb89b45ec1cf8e0aa9532b9581">&#9670;&nbsp;</a></span>BBL_Next()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BBL BBL_Next </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Next bbl or BBL_INVALID() if this is the end of trace or rtn</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gac7ea1e91e10bce868bbce497cacabab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac7ea1e91e10bce868bbce497cacabab3">&#9670;&nbsp;</a></span>BBL_NumIns()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">UINT32 BBL_NumIns </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This file contains <a class="el" href="group__BBL.html">BBL: Single entrance, single exit sequence of instructions</a> primitives</p>
<p>Number of INSs within a BBL.</p>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gad0a08cca57fae0af6ca98f1002a067bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad0a08cca57fae0af6ca98f1002a067bf">&#9670;&nbsp;</a></span>BBL_Original()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL BBL_Original </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Whether the BBL data structure has been instrumented or optimized since it was created</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="ga24f17f1c38cee6deb1ac18c8465d6fc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga24f17f1c38cee6deb1ac18c8465d6fc0">&#9670;&nbsp;</a></span>BBL_Prev()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BBL BBL_Prev </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Previous bbl or BBL_INVALID() if this is the beginning of trace or rtn</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gafc9ce3354eb08c36f2ff849e170e182c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafc9ce3354eb08c36f2ff849e170e182c">&#9670;&nbsp;</a></span>BBL_Size()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">USIZE BBL_Size </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>bbl</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>Size of bbl code, in bytes</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gacb48343e32bd7a793b487224ac857b19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacb48343e32bd7a793b487224ac857b19">&#9670;&nbsp;</a></span>BBL_Valid()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL BBL_Valid </td>
          <td>(</td>
          <td class="paramtype">BBL&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>True if x is not BBL_INVALID()</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux, Windows &amp; macOS*<br  />
<b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
